Skip to main content

Transformers

Exchange format (also named media):

  • json
  • yaml - partial support
  • xml - partial support

JSON

Generate JSON

var data: aDataDocument
var txt: Text

new(data)
data.Map('keyA').SetCString('valueA')
data.Map('keyB').Map('keyB1').SetInt(42)
data.Map('keyB').Map('keyB2').SetNum(42.42)
data.SetIndent(true)
; Stringify in JSON
if Doc.JSON.StringifyText(data, text)
endIf
write(txt)
txt:=''

Parse JSON

procedure myProcedure
uses aDataDocument, Doc, aStringFormat

var number : Int4
var data : aDataDocument
var myText : Text
var result : aDataValue
var error : aDataValue

new(data)
Write(myText, '{"result": [{"id": 0}, {"id": 1, "count":42}]}}')
if Doc.JSON.ParseText(data, myText)
if data.IsDefined
result = data.FindAtPath('result/1/count')
Write(result.ToCString)
;displays 42
endIf
else
error = data.GetError
myText := ''
if Doc.JSON.StringifyText(error, myText)
Write(myText)
endIf
endIf
endProc

YAML

Generate YAML

var data: aDataDocument
var txt: Text

new(data)
data.Map('keyA').SetCString('valueA')
data.Map('keyB').Map('keyB1').SetInt(42)
data.Map('keyB').Map('keyB2').SetNum(42.42)
data.SetIndent(true)
; Stringify in YAML
if Doc.YAML.StringifyText(data, text)
endIf
write(txt)
txt:=''

Parse YAML

warning

Not supported yet

XML

Generate XML

var data: aDataDocument
var txt: Text

new(data)
data.Map('keyA').SetCString('valueA')
data.Map('keyB').Map('keyB1').SetInt(42)
data.Map('keyB').Map('keyB2').SetNum(42.42)
data.SetIndent(true)
; Stringify in XML
if Doc.XML.StringifyText(data, text)
endIf
write(txt)
txt:=''

Parse XML

warning

Not supported yet